1
项目蓝图:构建一个基于 Rust 的 grep 工具
AI034Lesson 12
00:00

在 Rust 世界中,一个强大的命令行工具不仅仅是一个脚本;它是一套精心设计的 项目蓝图。要构建像 grep这样的工具,我们需要将工作划分为一个 二进制库 和一个 库库

1. 咖啡机类比

想象一台高端咖啡机。其中 lib.rs 包含了加热和研磨咖啡豆的内部机制——即“引擎逻辑”。而 main.rs 则是用户按下的外部按钮——即“接口”。通过将两者分离,技术人员可以在不每次都按下物理按钮(二进制)的情况下测试加热器(库)的功能。

2. 搭建引擎结构

我们从 $ cargo new minigrep开始。虽然这会创建一个 main.rs,但我们必须手动添加 src/lib.rs。这种架构上的分离确保了我们的核心搜索逻辑保持 解耦 与命令行解析分离,从而实现更易测试和模块化的设计。

二进制库src/main.rs(“点火”)库库src/lib.rs(“引擎”)调用逻辑

3. 可测试的模块化

通过将逻辑移至 lib.rs,我们可以利用 Rust 的测试框架在受控环境中调用库函数。我们在二进制文件中使用 use minigrep; 来导入引擎,同时将命令行解析逻辑保持独立。

main.py
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>